G_DEFINE_TYPE_WITH_CODE (GailLinkButtonLink, gail_link_button_link, ATK_TYPE_HYPERLINK,
G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
+static GailLinkButtonLink *
+gail_link_button_link_new (GailLinkButton *button)
+{
+ GailLinkButtonLink *link;
+
+ link = g_object_new (gail_link_button_link_get_type (), NULL);
+ link->button = button;
+
+ return link;
+}
+
static gchar *
gail_link_button_link_get_uri (AtkHyperlink *link,
gint i)
if (!button->link)
{
- button->link = g_object_new (gail_link_button_link_get_type (), NULL);
+ button->link = gail_link_button_link_new (button);
g_signal_connect (gtk_accessible_get_widget (GTK_ACCESSIBLE (button)),
"activate-link", G_CALLBACK (activate_link), button->link);
}
- return button->link;
+ return g_object_ref (button->link);
}
static void atk_hypertext_impl_interface_init (AtkHyperlinkImplIface *iface);